use crate::traits::logger::{Logger, LogLevel};
use core::fmt;

#[allow(unused_extern_crates)]
extern crate std;

pub struct StdLogger;

impl StdLogger {
    pub fn new() -> Self {
        StdLogger
    }
}

impl Logger for StdLogger {
    fn log(&self, level: LogLevel, file_name: &str, line_num: u32, args: fmt::Arguments<'_>) {
        use std::println;
        println!("[LOG] [{}] [{}:{}] {}", level, file_name, line_num, args);
    }
}
